package cn.ls;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.text.IniRealm;
import org.apache.shiro.subject.Subject;
/**
 * ctrl+h 显示类图
 */

/**
 * 第一个认证程序
 */
public class TestAuthenticator001 {
    public static void main(String[] args) {
        //1.创建安全管理器
        DefaultSecurityManager securityManager = new DefaultSecurityManager();

        //2.给安全管理器设置realm
        securityManager.setRealm(new IniRealm("classpath:shiro.ini"));

        //3.SecurityUtils 给全局安全工具类设置安全管理器
        SecurityUtils.setSecurityManager(securityManager);

        //4.关键对象 Subject 主体
        Subject subject = SecurityUtils.getSubject();

        //5.创建令牌
        UsernamePasswordToken token = new UsernamePasswordToken("lisi","admin");

        subject.login(token);
        //打印登录信息
        System.out.println("登录结果"+subject.isAuthenticated());
        // UnknownAccountException 用户名不存在
        // IncorrectCredentialsException 密码(凭证)错误
    }
}
